package com.mass.core.sys.user.services;

import java.util.List;

import com.mass.core.sys.user.model.SysUser;
import com.mass.core.utils.AjaxResponse;

import javax.servlet.http.HttpSession;

public interface SysUserServices {

	// 根据BaseId查询sys_user表是否存在该人员的角色
	long findUserListByBaseId(SysUser sysUser, Integer pageIndex,
			Integer pageSize);

	/**
	 * 新增用户 (重写新增接口用作 会员管理设置管理操作)
	 * 
	 * @param SysUser
	 */
	AjaxResponse insertUser(SysUser sysUser);

	/**
	 * 验证系统用户帐号是否存在
	 * 
	 * @param account
	 *            用户帐号
	 * @return
	 */
	SysUser checkAccountIsExist(String account);

	/**
	 * 验证用户登录
	 * 
	 * @param username
	 *            用户账号
	 * @param password
	 *            用户密码
	 * @return 如果有用户则返回
	 */
	SysUser checkLogin(String username, String password);

	/**
	 * 添加用户
	 */
	AjaxResponse insert(SysUser sysUser);

	/**
	 * 修改用户
	 */
	AjaxResponse updateSysUser(SysUser sysUser, HttpSession session);

	/**
	 * 
	 * @param sysUser
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	AjaxResponse findUserList(SysUser sysUser, Integer pageIndex,
			Integer pageSize);

	/**
	 * 查询所有权限
	 * 
	 * @return
	 */
	AjaxResponse findAutorityAll(Long userId);

	/**
	 * 修改用户权限
	 * 
	 * @param sysUser
	 * @return
	 */
	AjaxResponse updateAutority(SysUser sysUser);

	/**
	 * 
	 * @Title: findSysUserByUserId
	 * @Description: 根据用户ids 查询用户
	 * @param ids
	 * @return List<SysUser> 返回类型
	 * @throws
	 */
	List<SysUser> findSysUserByUserId(List<Long> ids);

	/**
	 * 
	 * @Title: updateSysUserInfo
	 * @Description: 修改用户信息 不可修改用户名、密码
	 * @param sysUser
	 * @return int 返回类型
	 * @throws
	 */
	int updateSysUserInfo(SysUser sysUser);

	/**
	 * 
	 * @Title: findSysUserByUserId
	 * @Description: 根据用户ID 查询用户
	 * @param userId
	 * @return SysUser 返回类型
	 * @throws
	 */
	SysUser findSysUserByUserId(Long userId);

	/**
	 * 
	 * @Title: findSysUserByOpenId
	 * @Description: 根据openID 查询用户
	 * @param openId
	 * @return SysUser 返回类型
	 * @throws
	 */
	SysUser findSysUserByOpenId(String openId);

	/**
	 * 
	 * @Title: unlock
	 * @Description: 锁屏解锁
	 * @param password
	 * @param userId
	 * @return int 返回类型
	 * @throws
	 */
	int unlock(String password, Long userId);

	AjaxResponse selectUserPage(SysUser sysUser, Integer pageIndex,
			Integer pageSize);

	SysUser selectById(Long id);
}
